CREATE
OR REPLACE PROCEDURE htqd_insert_cntinfoqd (p_phid IN NUMBER) AS 
uuid VARCHAR;
wbspid NUMBER;
cntmid NUMBER;
update_count NUMBER;
BEGIN
-- 查找uuid
SELECT
    user_uuid,phid INTO uuid, cntmid
FROM
    pcm3_cnt_m
WHERE
    phid = p_phid;

FOR rec IN (
    SELECT
        d.*,m.phid as mphid
    FROM
        p_form_htq_m m
        LEFT JOIN p_form_htq_d1 d on d.pphid = m.phid
    where
        m.u_uuid = uuid
) LOOP
    
    IF rec.s_tree_pid != '' and rec.s_tree_pid != '0' and rec.s_tree_pid is not null THEN
        update_count := 0;

        SELECT COUNT(phid) as a INTO update_count FROM pcm3_cnt_d where phid_wbs = rec.phid;

        IF update_count == 0 THEN
            SELECT phid INTO wbspid FROM p_form_htq_d1 where s_tree_id = rec.s_tree_pid and pphid = rec.mphid;
            INSERT INTO
                pcm3_cnt_d (
                    phid, -- 1
                    pphid, -- 2
                    item_no, -- 3
                    item_name, -- 4
                    phid_boq, -- 5
                    phid_boq_d, -- 6
                    phid_actid, -- 7
                    spec, -- 8
                    phid_unit, -- 9
                    phid_itemid, -- 10
                    qty, -- 11
                    prc, -- 12
                    prc_vat, -- 13
                    prc_fc, -- 14
                    prc_vat_fc, -- 15
                    amt, -- 16
                    amt_vat, -- 17
                    amt_fc, -- 18
                    amt_vat_fc, -- 19
                    taxrate, -- 20
                    taxamt, -- 21
                    phid_wbs, -- 22
                    phid_cbs, -- 23
                    phid_projtype, -- 24
                    proj_character, -- 25
                    demand, -- 26
                    phid_zbcnt, -- 27
                    fz_qty, -- 28
                    qty_ori, -- 29
                    prc_ori, -- 30
                    prc_ori_vat, -- 31
                    prc_ori_fc, -- 32
                    prc_ori_vat_fc, -- 33
                    ori_amt_fc, -- 34
                    ori_amt_vat_fc, -- 35
                    ori_amt, -- 36
                    ori_amt_vat, -- 37
                    phid_sourcemid, -- 38
                    phid_sourceid, -- 39
                    item_resource, -- 40
                    remarks, -- 41
                    ng_insert_dt, -- 42
                    ng_update_dt, -- 43
                    ng_record_ver, -- 44
                    creator, -- 45
                    editor, -- 46
                    cur_orgid, -- 47
                    levelid, -- 48
                    phid_fbfw, -- 49
                    phid_pc, -- 50
                    oper_flg, -- 51
                    phid_cntchg, -- 52
                    imp_info, -- 53
                    rest_qty, -- 54
                    rest_amt_vat, -- 55
                    rest_amt_vat_fc, -- 56
                    rest_amt, -- 57
                    rest_amt_fc, -- 58
                    control_qty, -- 59
                    control_amt_vat, -- 60
                    control_amt_vat_fc, -- 61
                    control_amt, -- 62
                    control_amt_fc, -- 63
                    aux_items1, -- 64
                    aux_items3, -- 65
                    aux_items2, -- 66
                    phid_itemdata, -- 67
                    phid_res_bs, -- 68
                    res_propertys, -- 69
                    phid_fcur, -- 70
                    exch_rate, -- 71
                    phid_fee_type, -- 72
                    days, -- 73
                    phid_asset_type, -- 74
                    ng_phid_cu, -- 75
                    ng_phid_bp, -- 76
                    ng_phid_org, -- 77
                    ng_phid_ui_scheme, -- 78
                    ng_phid_original, -- 79
                    ng_orgid_original, -- 80
                    ng_sv_search_key, -- 81
                    ng_sd_search_key, -- 82
                    ng_share_sign, -- 83
                    cglx, -- 84
                    total_sum, -- 85
                    rest_total_sum, -- 86
                    phid_asset, -- 87
                    rest_par_qty, -- 88
                    rest_par_amt_vat_fc, -- 89
                    vendor_prc, -- 90
                    time_type, -- 91
                    total_sum_unvat, -- 92
                    sum_taxrate, -- 93
                    plan_prc, -- 94
                    rest_act_qty, -- 95
                    rest_act_amt, -- 96
                    ori_tax_amt, -- 97
                    ori_tax_amt_lc, -- 98
                    tax_amt_lc, -- 99
                    xy_amt_lc, -- 100
                    ori_xy_sum_tax_lc, -- 101
                    xy_amt_vat_lc, -- 102
                    ori_days, -- 103
                    xy_sum_tax_lc, -- 104
                    ori_total_sum, -- 105
                    ori_total_sum_unvat, -- 106
                    ori_sum_taxrate, -- 107
                    ori_xy_amt_lc, -- 108
                    ori_xy_amt_vat_lc, -- 109
                    month_prc_fc, -- 110
                    month_prc_vat_fc, -- 111
                    month_prc, -- 112
                    month_prc_vat, -- 113
                    ori_month_prc_fc, -- 114
                    ori_month_prc_vat_fc, -- 115
                    ori_month_prc, -- 116
                    ori_month_prc_vat, -- 117
                    comp_start_dt, -- 118
                    months, -- 119
                    ori_months, -- 120
                    months_amt, -- 121
                    months_amt_vat, -- 122
                    months_amt_fc, -- 123
                    months_amt_vat_fc, -- 124
                    ori_months_amt, -- 125
                    ori_months_amt_vat, -- 126
                    ori_months_amt_fc, -- 127
                    ori_months_amt_vat_fc, -- 128
                    months_tax_amt, -- 129
                    months_tax_amt_fc, -- 130
                    ori_months_tax_amt_fc, -- 131
                    ori_months_tax_amt, -- 132
                    ori_comp_start_dt, -- 133
                    phid_itemdata_fsepid, -- 134
                    ori_months_day, -- 135
                    months_day, -- 136
                    item_sep_type, -- 137
                    phid_nonmsunit, -- 138
                    phid_subc_m, -- 139
                    phid_subc_d, -- 140
                    fy_sx, -- 141
                    fy_type, -- 142
                    ori_taxrate, -- 143
                    kks_code, -- 144
                    ch_df_amt_vat_fc, -- 145
                    ch_df_amt_vat, -- 146
                    ch_df_amt, -- 147
                    ch_df_amt_fc, -- 148
                    ng_write_source, -- 149
                    user_zytk, -- 150
                    user_zyzftk, -- 151
                    user_jdmbgq, -- 152
                    user_htzygcl, -- 153
                    user_sqdw, -- 154
                    user_sqbm, -- 155
                    user_sqr, -- 156
                    user_sqsj, -- 157
                    user_sbsqsy, -- 158
                    user_gcldw, -- 159
                    user_zyjszb, -- 160
                    user_jhqms, -- 161
                    user_zlsc, -- 162
                    user_jhrq, -- 163
                    user_tbbjjzj, -- 164
                    user_gdfyje, -- 165
                    user_htqdrq, -- 166
                    user_sccj, -- 167
                    user_gys, -- 168
                    user_xmszsf, -- 169
                    user_zcmc, -- 170
                    user_ggxh, -- 171
                    user_cwkph, -- 172
                    user_yz, -- 173
                    user_jz, -- 174
                    phid_cont_pack, -- 175
                    phid_cont_pack_d, -- 176
                    parent_id, -- 177
                    convert_coeff, -- 178
                    qty_ori_convert, -- 179
                    qty_convert, -- 180
                    amt_convert, -- 181
                    amt_vat_convert, -- 182
                    tax_amt_convert, -- 183
                    item_source -- 184
                )
            VALUES
                (
                    seq_auto_phid_cnt_htqd.nextval, -- 1
                    cntmid, -- 2
                    rec.s_tree_no, -- 3
                    rec.u_qdxmc, -- 4
                    null, -- 5
                    null, -- 6
                    null, -- 7
                    null, -- 8
                    rec.u_jldw, -- 9
                    0, -- 10
                    rec.u_gcl, -- 11
                    0.000000000000000, -- 12
                    0.000000000000000, -- 13
                    0.000000000000000, -- 14
                    rec.u_dj, -- 15 -- 单价
                    0.000000, -- 16
                    0.000000, -- 17
                    0.000000, -- 18
                    rec.u_hj, -- 19
                    0.000000, -- 20
                    0.000000, -- 21
                    wbspid, -- 22
                    0, -- 23
                    0, -- 24
                    null, -- 25
                    null, -- 26
                    null, -- 27
                    0.000000000000000, -- 28
                    0.000000000000000, -- 29
                    0.000000000000000, -- 30
                    0.000000000000000, -- 31
                    0.000000000000000, -- 32
                    0.000000000000000, -- 33
                    0.000000, -- 34
                    0.000000, -- 35
                    0.000000, -- 36
                    0.000000, -- 37
                    0, -- 38
                    null, -- 39
                    'freeadd', -- 40
                    null, -- 41
                    '2025-11-12 15:28:18.169187', -- 42
                    '2025-11-12 15:28:18.16919', -- 43
                    1, -- 44
                    6870000000000016, -- 45
                    6870000000000016, -- 46
                    1, -- 47
                    null, -- 48
                    null, -- 49
                    0, -- 50
                    'cnt', -- 51
                    0, -- 52
                    null, -- 53
                    0.000000000000000, -- 54
                    0.000000, -- 55
                    0.000000, -- 56
                    0.000000, -- 57
                    0.000000, -- 58
                    0.000000000000000, -- 59
                    0.000000, -- 60
                    0.000000, -- 61
                    0.000000, -- 62
                    0.000000, -- 63
                    null, -- 64
                    null, -- 65
                    null, -- 66
                    0, -- 67
                    0, -- 68
                    null, -- 69
                    1, -- 70
                    1.00000000, -- 71
                    null, -- 72
                    null, -- 73
                    null, -- 74
                    1, -- 75
                    0, -- 76
                    1, -- 77
                    0, -- 78
                    0, -- 79
                    0, -- 80
                    '10', -- 81
                    '1', -- 82
                    5, -- 83
                    null, -- 84
                    0.000000, -- 85
                    0.000000, -- 86
                    null, -- 87
                    0.000000000000000, -- 88
                    null, -- 89
                    null, -- 90
                    null, -- 91
                    null, -- 92
                    0.000000, -- 93
                    null, -- 94
                    0.000000, -- 95
                    0.000000, -- 96
                    0.000000, -- 97
                    0.000000, -- 98
                    0.000000, -- 99
                    null, -- 100
                    0.000000, -- 101
                    null, -- 102
                    0.00, -- 103
                    null, -- 104
                    0.000000, -- 105
                    0.000000, -- 106
                    0.000000, -- 107
                    0.000000, -- 108
                    0.000000, -- 109
                    0.000000000000000, -- 110
                    0.000000000000000, -- 111
                    0.000000000000000, -- 112
                    0.000000000000000, -- 113
                    0.000000000000000, -- 114
                    0.000000000000000, -- 115
                    0.000000000000000, -- 116
                    0.000000000000000, -- 117
                    null, -- 118
                    null, -- 119
                    0.00, -- 120
                    0.000000, -- 121
                    0.000000, -- 122
                    0.000000, -- 123
                    0.000000, -- 124
                    0.000000, -- 125
                    0.000000, -- 126
                    0.000000, -- 127
                    0.000000, -- 128
                    0.000000, -- 129
                    0.000000, -- 130
                    0.000000, -- 131
                    0.000000, -- 132
                    null, -- 133
                    null, -- 134
                    null, -- 135
                    null, -- 136
                    '', -- 137
                    null, -- 138
                    null, -- 139
                    null, -- 140
                    null, -- 141
                    null, -- 142
                    null, -- 143
                    null, -- 144
                    null, -- 145
                    null, -- 146
                    null, -- 147
                    null, -- 148
                    null, -- 149
                    null, -- 150
                    null, -- 151
                    null, -- 152
                    null, -- 153
                    null, -- 154
                    null, -- 155
                    0, -- 156
                    null, -- 157
                    null, -- 158
                    null, -- 159
                    null, -- 160
                    null, -- 161
                    null, -- 162
                    null, -- 163
                    null, -- 164
                    null, -- 165
                    null, -- 166
                    null, -- 167
                    null, -- 168
                    null, -- 169
                    null, -- 170
                    null, -- 171
                    null, -- 172
                    null, -- 173
                    null, -- 174
                    null, -- 175
                    null, -- 176
                    null, -- 177
                    0, -- 178
                    null, -- 179
                    null, -- 180
                    null, -- 181
                    null, -- 182
                    null, -- 183
                    null -- 184
                );
        ELSE
            UPDATE pcm3_cnt_d SET 
            item_no = rec.s_tree_no,
            item_name = rec.u_qdxmc,
            phid_unit = rec.u_jldw,
            prc_vat_fc = rec.u_dj,
            amt_vat_fc = rec.u_hj 
            WHERE phid_wbs = rec.phid;
        END IF;
        -- 找wbspid

    end IF;



END LOOP;

commit;

EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE ('插入失败，错误信息：' || SQLERRM);

RAISE;

ROLLBACK;

END htqd_insert_cntinfoqd;